home *** CD-ROM | disk | FTP | other *** search
- Why, oh why, can't everybody be on the Internet?!?
-
- A couple of days ago I found a file called DOOM_F30.ARJ somewhere (I can't
- remember where, unfortunately). I took for granted that it was just a
- repacked BAD MOOD or DVIEW, but fetched it anyway to make sure and to check
- that nothing in the distribution had been tampered with.
-
- Since it wasn't very important I didn't get around to unpacking the archive
- until a couple of hours ago. And guess what?
-
- It wasn't BAD MOOD, but a totally new DOOM clone for the Falcon!!!
-
-
- This one was written by two Frenchmen and was in a similar state as BAD MOOD.
- That is, you could only walk around and could cross walls.
- The program only runs on RGB monitors, using 320x100 TC mode. Pixels are
- doubled horizontally, so it was actually 160x100 'full' screen.
-
- It was all texture mapped!
- If I didn't misunderstand the built in VBL counter, the frame rate
- was around 0.8-5 fps.
-
- The programmer said he was working on a DSP version and that he'd seen
- up to six times speed up sometimes. I don't think he ment actual drawing
- speed increase, though.
-
-
- In my opinion we _really_ should get in touch with this guy, _yesterday_!
- The program was released just before Christmas and IIRC the programmer
- was asking for others to join him.
-
- So, is there anyone on the list who lives in France and could give the
- guy a call?
-
- If noone complains loudly before noon tomorrow I'll send out a repacked
- (LZH) archive on the list. I believe the size will be 60-70kbyte.
-
- By the way, I think you'll need the DOOM ShareWare WAD for this program.
-
-
-
- A couple of technical details:
- - According to the documentation the WAD is loaded using virtual memory,
- giving more disk accesses with less memory available.
- Looking through the code, I must admit that it actually looks like
- there is a true virtual memory scheme using the MMU.
-
- - The algorithms used appear similar to the DVIEW ones at the levels
- were it was possible to understand anything without thorough analysis.
- I think I could see both the BSP traversal and the distance tables.
- The code is just 15kbyte out of a 150kbyte executable, though.
- The rest is all tables!
- I wonder what the programmer could be doing with all those...
-
- - There appears to be no static texture mapping routine. Instead
- self-modifying code seems to be used.
- Some of the tables are probably involved in this.
-
- - The code is _extremly_ strange IMO.
- There are long stretches of code that look very unoptimized and there
- are recursive subroutines.
-
- For example the following code is used to load a word value and swap
- the byte order (Intel->Motorola format) in a lot of places:
-
- lea $xxxxx,a6
- move.b (a2)+,-(a6)
- move.b (a2)+,-(a6)
- move.w (a6),d1
-
- You can do exactly the same thing (the position at (a6) is not used) with:
-
- move.w (a2),d1
- rol.w #8,d1
-
- which should be a lot faster and save a register.
-
- There are also interesting instructions like:
-
- lea ([$xxxxx]),$xxxxx),a2 (12 bytes long)
- and
- move.l $xxxx,$xxxx (10 bytes long)
-
- The second of the above appear in clusters of around ten, with addresses
- mostly increasing by 4. That could be done a lot better as well.
-
- The things above and other makes it obvious that this is not (I hope)
- the work of a demo coder.
-
- I don't know what the performance hit can be from all the strangeness,
- since there is a lot of heavy maths going on. It might be trivial.
-
-
- I saw an intruction that I've never heard of, by the way.
- Does anyone happen to know what the following does?
-
- PTESTR #0,(a0),#7,a1
-
- My guess would be something regarding the cache (or perhaps MMU), but what?
- (Perhaps it's time to invest in an '030 book. ;-)
-
- --
- Chalmers University | Why are these | e-mail: rand@cd.chalmers.se
- of Technology | .signatures | johan@rand.thn.htu.se
- | so hard to do | WWW/ftp: rand.thn.htu.se
- Gothenburg, Sweden | well? | (MGIFv5, QLem, BAD MOOD)
-
-